<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Ltablas {

    function __construct() {
        // Do something with $params
    }

    function botones($tablaBase, $arrayOpciones, $nunColumna) {
        //$tablaBase es la tabla inicial
        // $arrayOpciones es las opciones con las funciones
        $url = '../../';
        $i = 0;
        foreach ($tablaBase as $fila) {
            if (isset($arrayOpciones['editar'])) {
                $boton = "<a href='javascript:;'><img src='" . $url . "media/iconos/editar.png' alt='editar'";
                $boton.=" onclick='" . $arrayOpciones['editar'] . "(" . $tablaBase[$i][$nunColumna] . ")' /></a>";
                array_push($tablaBase[$i], $boton);
            }
            if (isset($arrayOpciones['eliminar'])) {
                $boton = "<a href='javascript:;'><img src='" . $url . "media/iconos/cancel.png' alt='eliminar'";
                $boton.=" onclick='" . $arrayOpciones['eliminar'] . "(" . $tablaBase[$i][$nunColumna] . ")' /></a>";
                array_push($tablaBase[$i], $boton);
            }
            if (isset($arrayOpciones['ver'])) {
                $boton = "<a href='javascript:;'><img src='" . $url . "media/iconos/b_ver_on.gif' alt='ver'";
                $boton.=" onclick='" . $arrayOpciones['ver'] . "(\"" . $tablaBase[$i][$nunColumna] . "\")' /></a>";
                array_push($tablaBase[$i], $boton);
            }
            $i++;
        }
        return $tablaBase;
    }

    function agregaLinks($arrayTablas, $idColumna, $javaScripts, $llaves) {
        foreach ($arrayTablas as $key => $fila) {
            $valor = $fila[$idColumna];
            $id = '';
            foreach ($llaves as $llave) {
                $id.="\"" . $fila[$llave] . "\",";
            }
            $id = rtrim($id, ",");

            $link = "$javaScripts($id)";
            $arrayTablas[$key][$idColumna] = "<a href='javascript:$link;'>$valor</a>";
        }
        return $arrayTablas;
    }

    function ordenarColumnas($tabla, $cabecera) {
        $tablaFinal = array();
        foreach ($tabla as $key => $fila) {
            foreach ($cabecera as $elemento) {
                $tablaFinal[$key][$elemento] = $fila[$elemento];
            }
        }
        return $tablaFinal;
    }

    function obtenerTabla($dataTablas) {
        $url = '../../';
        $tabla = "<table ";
        extract($dataTablas);
        if (!isset($arrayEncabezado)) {
            $array1 = $arrayTabla[0];
            foreach ($array1 as $key => $value) {
                $arrayEncabezado[$key] = $value;
            }
        }
        $arrayRespuesta = $this->ordenaCabeza($arrayEncabezado, $arrayBotones);
        $arrayEncabezadoAux = $arrayRespuesta['arrayCabeza'];
        $arrayBotones = $arrayRespuesta['arrayBotones'];

        if (isset($id)) {
            $tabla.="id='$id' ";
        } else {
            $tabla.="id='tabla' ";
        }
        if (isset($class)) {
            $tabla.="class='$class' ";
        } else {
            $tabla.="class='tablas' ";
        }
        $tabla.=" >";
        $tabla.="<thead>";
        $tabla.="<tr> ";
        $contador = 0;
        foreach ($arrayEncabezadoAux as $key => $value) {

            $tabla.="<th>$value</th>";
            $contador++;
        }
        $tabla.="</tr> ";
        $tabla.="</thead>";
        $tabla.="<tbody>";
        foreach ($arrayTabla as $fila) {
            $tabla.="<tr ";
            if (isset($columnaEstado)) {
                $estado = $arrayEstados[$fila[$columnaEstado]];
                $tabla.="class='$estado'";
            }
            $tabla.=" >";
            foreach ($arrayEncabezadoAux as $key => $value) {
                if (!isset($fila[$key])) {
                    if (isset($arrayBotones[$key]['arrayFunciones'])) {
                        $valor = '';
                        if ($arrayBotones[$key]['esconestados'] == true) { //con estados
                            foreach ($arrayBotones[$key]['arrayFunciones'] as $keyFunciones => $funciones) {
                                $estadoBoton = $funciones['estado'];
                                if ($estadoBoton == $fila[$arrayBotones[$key]['columnaEstado']]) {
                                    $icono = $funciones['icono'];
                                    $alt = $funciones['alt'];
                                    $evento = $funciones['evento'];
                                    $funcion = $funciones['funcion'];
                                    $parametro = $fila[$arrayBotones[$key]['columnaId']];
                                    $valor = "<a href='javascript:;'><img src='$url/media/iconos/$icono'";
                                    $valor.="' alt='$alt' ";

                                    $valor.=" $evento='$funcion($parametro)' /></a>";
                                }
                            }
                        } else {  /// sin estados
                            $funciones=$arrayBotones[$key]['arrayFunciones'][0];
                            $icono = $funciones['icono'];
                            $alt = $funciones['alt'];
                            $evento = $funciones['evento'];
                            $funcion = $funciones['funcion'];
                            $parametro = $fila[$arrayBotones[$key]['columnaId']];
                            $valor = "<a href='javascript:;'><img src='$url/media/iconos/$icono'";
                            $valor.="' alt='$alt' ";

                            $valor.=" $evento='$funcion($parametro)' /></a>";
                        }
                    } else {
                        $valor = '';
                    }

                    // echo "key:$key<br/>";
                    $tabla.="<td>$valor</td>";
                    //print_r($fila);
                } else {
                    // echo "key 1: $key <br/>";
                    $tabla.="<td>$fila[$key]</td>";
                }
            }
            $tabla.="</tr> ";
        }
        $tabla.="</tbody>";
        $tabla.="</table> ";
        return $tabla;
    }

    function ordenaCabeza($arrayCabeza, $arrayBotones) {
        /// oradenamos arraybotones
        $arrayCabezaAux = array();
        $arrayBotonesAux = array();
        $nbotones = count($arrayBotones);
        $orden = 0;
        foreach ($arrayBotones as $key => $value) {
            $arrayBotones[$key]['e'] = 0;
            if ($orden < $value['orden']) {
                $orden = $value['orden'];
            }
        }
        $encontrado = 0;
        $fin = 0;
        $ordenMaximo = $orden;
        $llave;
        $indice = 0;
        $aux = 0;
        while ($fin == 0 && $aux < 10) {
            $orden = $ordenMaximo;
            $encontrado = 0;
            foreach ($arrayBotones as $key => $value) {
                if ($value['e'] == 0) {
                    $encontrado = 1;
                    if ($orden >= $value['orden']) {
                        $orden = $value['orden'];
                        $llave = $key;
                    }
                }
            }
            if ($encontrado == 1) {
                $arrayBotonesAux[$indice] = $arrayBotones[$llave];
                $indice++;
                $arrayBotones[$llave]['e'] = 1;
            } else {
                $fin = 1;
            }
            //echo "encontrado: $encontrado<br>";
            $aux++;
        }
        //print_r($arrayBotonesAux);
        $contador = 0;
        foreach ($arrayBotonesAux as $idBoton => $boton) {
            $contador = 0;
            $encontrado = 0;
            foreach ($arrayCabeza as $key => $value) {
                if ($boton['orden'] == $contador && $encontrado == 0) {
                    //echo "orden:".$boton['orden']."<br/>";
                    $valor = $boton['nombre'];
                    $arrayCabezaAux[$idBoton] = $valor;
                    $arrayCabezaAux[$key] = $value;
                    $encontrado = 1;
                } else {
                    $arrayCabezaAux[$key] = $value;
                }

                $contador++;
            }
            $arrayCabeza = $arrayCabezaAux;
            $arrayCabezaAux = array();
        }
        //print_r($arrayCabeza);
        $arrayRespuesta['arrayCabeza'] = $arrayCabeza;
        $arrayRespuesta['arrayBotones'] = $arrayBotonesAux;
        return $arrayRespuesta;
    }

}

?>